<?php
/**
 * @author		João Batista Neto
 * @package		rpo
 * @subpackage	http\interfaces
 * @category	Http, Client
 * @license		http://opensource.org/licenses/gpl-license.php GNU Public License
 */
namespace rpo\http\interfaces;

use \Iterator;
use rpo\base\String;

/**
 * Define a interface de uma lista de cabeçalhos Http
 * @author		João Batista Neto
 * @package		rpo
 * @subpackage	http\interfaces
 * @category	Http, Client
 * @license		http://opensource.org/licenses/gpl-license.php GNU Public License
 */
interface IHttpHeaderList extends Iterator {
	/**
	 * Adiciona um novo campo a lista de cabeçalhos
	 * @param String $field O nome do campo
	 * @param String $value O valor do campo
	 * @param boolean $overwrite Define se o novo valor sobrescreverá o valor anterior
	 */
	public function add( String $field , String $value , $overwrite = true );

	/**
	 * Remove um cabeçalho existente
	 * @param String $field O nome do campo
	 */
	public function del( String $field );

	/**
	 * Recupera o valor de um campo específico
	 * @param String $field
	 * @return string
	 */
	public function get( String $field );
}